Providing data and application services to large number of concurrent clients via a server poses a number of performance and memory challenges for the server. Some of these performance and memory challenges are alleviated by utilizing relatively small amounts of volatile memory called cache. By storing small frequently accessed or recently accessed data in the cache, clients may quickly use the data in connection with an application, since access to the data are in portions of the random access memory associated with the server and are correspondingly more efficiently retrieved by the server.
If the capacity of the cache could be improved, then the server would be capable of servicing more clients, addressing the needs of high data volume clients, and more efficiently assisting process intensive client requests. Moreover, the capacity of the cache is often constrained by the hardware architecture and the operating system architecture of the server. However, modifying the hardware and operating system associated with the server is not a practical option for most data and application service providers. This is so, because the hardware and operating system are circumscribed in large part by the state of existing technology available. Therefore, as a practical matter individual software applications must be developed to improve cache capacity and performance by logically expanding the cache capacity.
Presently, with the advent of the omnipresent Internet and browser technology utilized in connection with the World Wide Web (WWW), an increasing number of clients are making demands on servers, which provide data and application services. Moreover, these servers are expected to handle thousands of concurrent requests by clients without any significant degradation in response time to these clients
Furthermore, users associated with some clients, which are utilizing the servers, are demanding much higher performance from data and application service providers. Broadband and high speed Internet connections have made the performance expectations of users extremely high, which has correspondingly placed difficult and unrealistic burdens on data and application service providers to become more efficient and more performance oriented.
Some data and application service providers have attempted to alleviate the growth pains associated with these increase demands by adding additional hardware to support the server services being provided. Yet, additional hardware entails additional maintenance and additional support which is becoming increasingly difficult to manage for the data and application service providers. More staff is required to support the additional hardware, and more software installed on the additional hardware ensures more expense associated with keeping everything in synch. Furthermore, as previously presented there reaches a point of diminishing returns at which time, the additional hardware added to the server does not increase performance but, rather, decreases performance.
Finally, as computing technology permeates all aspects of society and business, some businesses, which have never had to deal with computing technology and are corresponding ill equipt to manage that technology, are turning to data and application service providers to outsource their technology needs. This demand to outsource business computing technology has added a new layer of demand and complexity on data and application service providers, since business clients of the server demand reliable, instant, and accurate service.
Accordingly, methods which will increase cache performance are needed so that data and application services being provided to clients utilizing server technologies may support increase demands in a more efficient manner without the need to add additional hardware. Although as one skilled in the art will appreciate, cache performance of an individual computing device which is not servicing multiple clients would benefit by increased cache performance as well.